package vip.xiaonuo.supplier.modular.finance.settlement.param;

import com.fhs.core.trans.anno.Trans;
import com.fhs.core.trans.constant.TransType;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;

import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.Date;

/**
 * 结算单表编辑参数
 *
 * @author Mr.wu
 * @date  2025/04/09 17:28
 **/
@Getter
@Setter
public class SupplierSettlementEditParam {

    /** 结算记录ID */
    @Schema(description = "结算记录ID", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotBlank(message = "id不能为空")
    private String id;

    /** 业务ID */
    @Schema(description = "业务ID")
    private String businessBusinessIds;

    /** 结算类型 */
    @Schema(description = "单据类型")
    private String businessType;

    /** 结算类型(0-收款,1-付款，2-转账) */
    @Schema(description = "结算类型(0-收款,1-付款，2-转账)")
    private String businessSettlementType;

    /** 结算项目ID */
    @Schema(description = "结算项目ID")
    private String businessProjectId;

    /**结算项目编码 */
    @Schema(description = "结算项目编码")
    private String businessProjectIdCode;

    /** 结算单号 */
    @Schema(description = "结算单号")
    private String businessCode;

    /** 结算对象 */
    @Schema(description = "结算对象")
    private String businessObjectId;

    /**结算对象名称 */
    @Schema(description = "结算对象名称")
    private String businessObjectName;

    /**结算对象电话 */
    @Schema(description = "结算对象电话")
    private String businessObjectTel;

    /**结算对象地址 */
    @Schema(description = "结算对象地址")
    private String businessObjectAddress;

    /** 经办人ID */
    @Schema(description = "经办人ID")
    private String businessHandlerId;

    /** 出货门店ID */
    @Schema(description = "出货门店ID")
    private String businessShippingStoreId;

    /** 入库门店ID */
    @Schema(description = "入库门店ID")
    private String businessStorageStoreId;

    /** 金额 */
    @Schema(description = "金额")
    private BigDecimal businessTotalAmount;

    /** 折让金额 */
    @Schema(description = "折让金额")
    private BigDecimal businessDiscountAmount;

    /** 实收金额 */
    @Schema(description = "实收金额")
    private BigDecimal businessInAmount;

    /** 实付金额 */
    @Schema(description = "实付金额")
    private BigDecimal businessPayAmount;

    /** 收（付）款账户 */
    @Schema(description = "收（付）款账户")
    private String businessAccountId;

    /** 结算前余额 */
    @Schema(description = "结算前余额")
    private BigDecimal settlementBalanceBefore;

    /** 结算后余额 */
    @Schema(description = "结算后余额")
    private BigDecimal businessAccountBalanceBefore;

    /** 摘要 */
    @Schema(description = "摘要")
    private String businessAbstract;

    /** 备注 */
    @Schema(description = "备注")
    private String businessRemark;

    /** 结算状态 */
    @Schema(description = "结算状态")
    private String businessStatus;

    /** 扩展信息 */
    @Schema(description = "扩展信息")
    private String extJson;

    /** 数据归属 */
    @Schema(description = "数据归属")
    private String companyId;

}
